import time
import redis
class RedisQueue:
    def __init__(self,key,**redis_kwargs):
       # redis的默认参数为：host='localhost', port=6379, db=0， 其中db为定义redis database的数量
       self.__db= redis.Redis(**redis_kwargs)
       self.key = key
       self.lz=self.__db.llen(self.key)

    def put(self, item):
        self.__db.rpush(self.key,item)  # 添加新元素到队列最右方

    def pop(self):
        # 返回队列第一个元素，如果为空则等待至有元素被加入队列（超时时间阈值为timeout，如果为None则一直等待）
        return self.__db.lpop(self.key) # 返回值为一个tuple

    def lrange(self):
        return [i.decode() for i in self.__db.lrange(self.key, 0, -1)]

    def hget(self,key,id):
        return self.__db.hget(key,id)

# z=RedisQueue("lz")
# start=time.time()
# [z.put(i) for i in range(100)]
# end=time.time()
# print(f'消耗时间为{end-start}秒')